#ifndef STANDARDDATARETRIEVER_H
#define STANDARDDATARETRIEVER_H

#include "IDataRetriever.h"

class QSqlQuery;

namespace Tanyatu
{
namespace DataSource
{

class TANYATU_CORE_EXPORT StandardDataRetriever : public IDataRetriever
{
public:
    StandardDataRetriever() { /* NOTHING_YET */}

    ~StandardDataRetriever() { /* NOTHING_YET */ }

    bool getStoredAudio( QHash< QString, Model::StoredAudio*> &items );

    bool getHistory( QList< QPair< QString, QDateTime > *> &recentIds);

    bool getTrackIdsFromArtist( QString artistName, QSet< QString > &trackIds );

    bool getAlbumIdsFromArtist( QString artistName, QSet< QString > &albumIds );

    bool getTrackIdsFromAlbum( QString artistName, QString albumName,
                               QSet< QString > &trackIds );

    bool getAllArtists(QHash< QString, Model::ArtistInfo *> &artists );

    bool getAllAlbums( QHash< QString, Model::AlbumInfo *> &albums);

    bool getPlaylists( QHash< QString, Model::SavedPlaylist *> &playlists);

    bool getPlaylistContent(QString playlistName, QList< QString > &trackIds);

    int getPlayCount( QString trackId );

    Model::MediaRating getRating( QString trackId );

    bool getSettings( QHash< QString, QVariant > settins);

    QList< Model::MediaItem *> getSavedCurrentPlaylist();

private:

    void addTags( Model::StoredMediaObject *obj, QString tags );
};
}
}

#endif // STANDARDDATARETRIEVER_H
